package com.bondex.charter.maindata.po;


import com.bondex.charter.maindata.pojo.api.BaseSeaVoyageDetailCarrierVO;
import com.bondex.charter.maindata.pojo.api.BaseSeaVoyageDetailVoyageTypeVO;
import com.bondex.cloud.common.entity.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.util.List;

/**
 * 航次明细(BaseSeaVoyageDetail)实体类
 *
 * @author swl
 * @since 2021-04-06 16:32:21
 */
@Getter
@Setter
public class BaseSeaVoyageDetail extends BaseEntity {

	private Long id;

	/**
	 * 航次主键
	 */
	private Long voyageId;

	/**
	 * 航次
	 */
	private String voyage;

	/**
	 * 挂港顺序
	 */
	private String routing;

	/**
	 * 船公司信息
	 */
	@JsonIgnore
	private Object carrier;

	/**
	 * 船公司信息(ES存储使用)
	 */
	private List<BaseSeaVoyageDetailCarrierVO> carrierList;

	/**
	 * 挂港港口编码
	 */
	private String loadingPortCode;

	/**
	 * 挂港港口六字码
	 */
	private String loadPortSixCode;

	/**
	 * 数据来源
	 */
	private String dataSource;

	/**
	 * 挂港港口名称
	 */
	private String loadingPort;

	/**
	 * 码头代码
	 */
	private String wharfCode;

	/**
	 * 码头名称
	 */
	private String wharfNameCN;

	/**
	 * 截单时间 shipping information/shipping instruction。例：yyyy-MM-dd HH:mm:ss
	 */
	//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date siClosing;

	/**
	 * 截港时间 container yard。 例：yyyy-MM-dd HH:mm:ss
	 */
	//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date cyCutOff;

	/**
	 * 截关时间 例：yyyy-MM-dd HH:mm:ss
	 */
	//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date customsClosing;

	/**
	 * VGM日期 Verified Gross Mass 核实的集装箱总重 例：yyyy-MM-dd
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date vgmClosing;

	/**
	 * 危险品截单时间 danger goods。例：yyyy-MM-dd HH:mm:ss
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date dgsiClosing;

	/**
	 * 危险品 核实的集装箱总重日期 例：yyyy-MM-dd
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date dgvgmClosing;

	/**
	 * 预计到港时间 Estimated Time of Arrival
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date eta;

	/**
	 * 预计离港时间 Estimated Time of Departure
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date etd;

	/**
	 * 实际离港时间 Actual Time of Departure
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date atd;

	/**
	 * 截AMS/ENS
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date ams;

	/**
	 * 实际到港时间 Actual Time of Arrival
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date ata;

	/**
	 * 特殊货物 核实的集装箱总重日期 例：yyyy-MM-dd
	 */
	private Date scvgmClosing;

	/**
	 * 特殊货物截单时间 special cargo 例：yyyy-MM-dd HH:mm:ss
	 */
	private Date scsiClosing;

	/**
	 * T/T 航程时间
	 */
	private String transitTime;

	/**
	 * 报关航次
	 */
	private String declarationVoyage;

	/**
	 * 外配代码
	 */
	private String externalCode;

	/**
	 * 航次代码
	 */
	private String voyageCode;

	/**
	 * 分公司代码
	 */
	private String corpCode;

	/**
	 * 数据类型(二进制存储)
	 */
	private Integer dataType;

	/**
	 * 创建者
	 */
	private String createUser;

	/**
	 * 创建时间
	 */
	private Date createDate;

	/**
	 * 更新者
	 */
	private String updateUser;

	/**
	 * 更新时间
	 */
	private Date updateDate;

	/**
	 * 审核人
	 */
	private String auditUser;

	/**
	 * 审核时间
	 */
	private Date auditDate;

	/**
	 * 删除标志
	 */
	private String delFlg;

	/**
	 * 外部数据获取数据时间,用来进行外部数据的组合排序等操作
	 */
	private String outerDataGetDate;

	/**
	 * 与报关航次一致（0：一致；1：不一致）
	 */
	private String voyageConsistent;

	/**
	 * 航次类型（出口航次、进口航次）
	 */
	@JsonIgnore
	private Object voyageType;

	/**
	 * 航次类型 (ES存储使用)
	 */
	private BaseSeaVoyageDetailVoyageTypeVO voyageTypeInfo;

	/**
	 * 可承接危险品（0：承接；1：不承接）
	 */
	private String dgUndertake;


}
